L3build — a Modern Lua Test Suite for T E X Programming

نویسندگان

  • Frank Mittelbach
  • Will Robertson
چکیده

Regression tests are an important tool in any moderately complex programming environment. They allow the programmer to make extensive changes to their code while providing confidence that something that used to work still does. Extensive regression test suites have been an essential component of the maintenance and development of LTEX 2ε and LTEX3. A regression test suite is typically composed of a number of individual files that contain one or more testable units of the code being tested. A testable unit might be either a certain computation with an expected outcome, a series of logic tests, or — in particular for TEX-based code — material that is typeset and intended to achieve some particular formatting. During code development and before any new code is released to the public, this test suite can be compiled to ensure that any changes to the code have not introduced bugs or changed the behaviour compared to previous versions. As bugs in the code are reported, minimal examples demonstrating the bug often form test files of their own, showing that the bug has been fixed and won’t re-occur. As TEX-based code operates in at least three different ‘modes’ (mouth, stomach, and output), regression testing is more complex than simply asserting the outcome of certain programming logic. As part of the work of the LTEX3 project, a new Lua-based testing environment has been written to support ongoing development. This testing environment, presented at the 2014 TUG conference in Portland [3], is suitable for use by the general TEX community.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Nemo: Multi-Criteria Test-Suite Minimization with Integer Nonlinear Programming

Multi-criteria test-suite minimization aims to remove redundant test cases from a test suite based on some criteria such as code coverage, while trying to optimally maintain the capability of the reduced suite based on other criteria such as fault-detection effectiveness. Existing techniques addressing this problem with integer linear programming claim to produce optimal solutions. However, the...

متن کامل

Closures in Lua

First-class functions are a very powerful language construct and a fundamental feature in functional languages. However, few procedural languages support this feature, due to their stack-based implementation. In this paper we discuss a new algorithm for the implementation of first-class functions used in the implementation of Lua 5.x. Unlike previous techniques, our algorithm does not need stat...

متن کامل

First-Class Functions in an Imperative World

First-class functions are a hallmark of functional languages, but they are a useful concept in imperative languages, too. Even ANSI C offers a restricted form of first-class functions (in the form of pointers to functions), and several more recent imperative languages, such as Python 3, Go, Lua, and Swift, offer first-class, anonymous functions with lexical scoping. In most imperative languages...

متن کامل

Luajitt E X

Here we introduce LuaJITTEX, an implementation of LuaTEX that uses LuaJIT 2.0 instead of Lua 5.1 .

متن کامل

Performance Evaluation of the Inference Structure in Expert System

There are a v a r i e t y of f ac to r s that a f f e c t the performance of an expert system. This paper presents an eva lua t i ng method focus ing on the complex i ty , costs and e f f i c i e n c y of in ference s t r u c t u r e in a r u l e / Knowledge-source based expert system. The performance measuring fac to rs proposed here, when fedback to Knowledge engineers, can help them gain a q...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014